/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 */

import React, { useState, useEffect } from 'react';
import type { PropsWithChildren } from 'react';
import {
  Alert,
  SafeAreaView,
  ScrollView,
  StatusBar,
  StyleSheet,
  Text,
  useColorScheme,
  View,
  Button
} from 'react-native';

import {
  Colors,
  DebugInstructions,
  Header,
  LearnMoreLinks,
  ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';

import { registerApp, sendAuthRequest } from 'react-native-wechat-lib';

type SectionProps = PropsWithChildren<{
  title: string;
}>;

function Section({ children, title }: SectionProps): React.JSX.Element {
  const isDarkMode = useColorScheme() === 'dark';
  return (
    <View style={styles.sectionContainer}>
      <Text
        style={[
          styles.sectionTitle,
          {
            color: isDarkMode ? Colors.white : Colors.black,
          },
        ]}>
        {title}
      </Text>
      <Text
        style={[
          styles.sectionDescription,
          {
            color: isDarkMode ? Colors.light : Colors.dark,
          },
        ]}>
        {children}
      </Text>
    </View>
  );
}

function App(): React.JSX.Element {
  const isDarkMode = useColorScheme() === 'dark';
  const [wechatReady, setWechatReady] = useState(false);

  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };

  const handleLogin = async () => {
    if (!wechatReady) {
      Alert.alert('提示', '请先安装微信客户端');
      return;
    }
    
    try {
      const authResult = await sendAuthRequest('snsapi_userinfo', 'state_123');
      console.log('授权结果:', authResult);
      // 这里应该调用你的后端API，用code换取access_token和用户信息
      const userInfo = {nickname:'devin'};
      Alert.alert('登录成功', `欢迎 ${userInfo.nickname}`);
    } catch (error) {
      console.error('登录失败:', error);
      Alert.alert('登录失败', error.message || '未知错误');
    }
  };
  console.log(registerApp,' registerApp')

  registerApp('你的微信AppID', '你的Universal Link')
  .then((result: any) => {
    console.log('微信注册成功', result);
  })
  .catch((error: any) => {
    console.log('微信注册失败:', error);
  });

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar
        barStyle={isDarkMode ? 'light-content' : 'dark-content'}
        backgroundColor={backgroundStyle.backgroundColor}
      />
      <ScrollView
        contentInsetAdjustmentBehavior="automatic"
        style={backgroundStyle}>
        <Header />
        <View style={{ margin: 20 }}>
      <Button
        title="微信登录"
        onPress={handleLogin}
        disabled={!wechatReady}
      />
      {!wechatReady && (
        <Text style={{ color: 'red', marginTop: 10 }}>
          未检测到微信客户端，请先安装微信
        </Text>
      )}
    </View>
        <View
          style={{
            backgroundColor: isDarkMode ? Colors.black : Colors.white,
          }}>
          <Section title="Step One">
            Edit <Text style={styles.highlight}>App.tsx</Text> to change this
            screen and then come back to see your edits.
          </Section>
          <Section title="See Your Changes">
            <ReloadInstructions />
          </Section>
          <Section title="Debug">
            <DebugInstructions />
          </Section>
          <Section title="Learn More">
            Read the docs to discover what to do next:
          </Section>
          <LearnMoreLinks />
        </View>
      </ScrollView>
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  sectionContainer: {
    marginTop: 32,
    paddingHorizontal: 24,
  },
  sectionTitle: {
    fontSize: 24,
    fontWeight: '600',
  },
  sectionDescription: {
    marginTop: 8,
    fontSize: 18,
    fontWeight: '400',
  },
  highlight: {
    fontWeight: '700',
  },
});

export default App;
